package br.com.scmimebr.managedbean.membro.alterar;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import br.com.scmimebr.entity.Membro;
import br.com.scmimebr.managedbeans.BaseManagedBean;
import br.com.scmimebr.sessionBean.MembroSessionBean;
import br.com.scmimebr.util.SCMIMEBRConstantes;

@ViewScoped
@ManagedBean
public class ListarMembrosAlterarManagedBean extends BaseManagedBean {

	public ListarMembrosAlterarManagedBean(){
		super();
	}
	private Membro membro;
	private Integer tipoFiltro;
	private Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
	private List<Membro> listaMembros = new ArrayList<Membro>();
	
	@EJB
	MembroSessionBean membroSessionBean;
	
	@PostConstruct
	public void init(){
		membro = (Membro) requestMap.get("membro");
		tipoFiltro = (Integer) requestMap.get("tipoFiltro");
		listaMembros = listarMembros();
		
	}
	
	public String selecionarMembro(){
		requestMap.put("membro", membro);
		requestMap.put("tipoFiltro", tipoFiltro);
		return SCMIMEBRConstantes.ALTERAR_MEMBRO;
	}
	
	public List<Membro> listarMembros(){
		switch (tipoFiltro) {
		case 1:
			listaMembros = membroSessionBean.consultarMembroPorNome(membro.getNome());
			break;
		case 2:
			listaMembros = membroSessionBean.consultarMembroPorSexo(membro.getSexo());
			break;
		case 3:
			listaMembros = membroSessionBean.consultarTodosMembros();
			break;
		default:
			break;
		}
		return listaMembros;
	}

	public String voltarTelaConsultarMembro(){
		return SCMIMEBRConstantes.CONSULTAR_DIZIMO_ALTERAR;
	}
	
	public Membro getMembro() {
		return membro;
	}

	public void setMembro(Membro membro) {
		this.membro = membro;
	}

	public Integer getTipoFiltro() {
		return tipoFiltro;
	}

	public void setTipoFiltro(Integer tipoFiltro) {
		this.tipoFiltro = tipoFiltro;
	}

	public List<Membro> getListaMembros() {
		return listaMembros;
	}

	public void setListaMembros(List<Membro> listaMembros) {
		this.listaMembros = listaMembros;
	}
	
	
}
